// miniprogram/pages/mine/mine.js
const app = getApp();
const api = require('../../utils/api');
const { myRequest } = require('../../utils/myRequest');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {
      avatarUrl:"/images/mine.png"
    },
    hasUserInfo: false,
    // 检验能力：登录的改变，导致登录需要button的open-type
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    pagetype:0,//控制展示的页面
    arr: null,//收藏列表
    choicearr: [],//收藏页面选择的数据
    choall: false,//是否全选
    sett:false,//控制选择
    repage:1,
    colnone:0,//控制无数据页面是否显示
  },

  //登录按钮
  getUserInfo: function (e) {
    if (!e.detail.userInfo){
      this.toastmsg();
      return false;
    }
    // 保存在app内
    app.globalData.userInfo = e.detail;
    // 保存在该页面data内
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
    //换取token
    wx.request({
      url: api.auth,
      data: {
        appId: 'wx360a858e26b16bc8',
        secret: '3a386fd69859fbad0235ebd67d6848be',
        code: app.globalData.code,
        userInfo: e.detail,
      },
      method: 'POST',
      success: (res) => {
        if (!res.data.data){
          console.log("No user information!")
            return false;
        }
        if (res.data.data.token) {
          //储存数据（异步）
          wx.setStorage({
            key: 'token',
            data: res.data.data.token,
            success: function (res) {
              // success
              console.log('token保存成功')
            },
            fail: function () {
              // fail
            }
          });
        }
      },
      fail: () => { }
    })

  },
  toastmsg(){
    wx.showToast({
      title: '请先登录！！！',
      icon: "none",
      duration: 2000,
    })
  },
  // 我的订单
  order(){
    if (!this.data.hasUserInfo){
      this.toastmsg();
      return false;
    }
    console.log("My order!")
  },
  // 物流
  logistics() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    console.log("logistics!")
  },
  // 售后服务
  service() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    console.log("service!")
  },
  // 账户余额
  balance() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    console.log("balance!")
  },
  // 优惠券
  coupon() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    console.log("coupon!")
  },
  // 我的收藏
  collection() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    console.log("collection!")
    this.setData({
      pagetype:1
    })
  },
  // 足迹
  footprint() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    wx.navigateTo({
      url: '../footerprint/footerprint',
    })
  },

  // 我的地址
  address() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    console.log("address!")
  },
  // 常见问题
  problem() {
    console.log("problem!")
  },
  // 建议投诉
  proposal() {
    console.log("proposal!")
  },
  // 联系客服
  staff() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    console.log("staff!")
  },
  // 设置
  setting() {
    if (!this.data.hasUserInfo) {
      this.toastmsg();
      return false;
    }
    console.log("setting!")
  },


  // 收藏页面功能
  collectionChoice(e){
    let index = e.currentTarget.dataset.index;
    if (this.data.arr[index].choicesty == "choice") {
      this.data.arr[index].choicesty = "";
      this.data.arr[index].choiceimg = "http://annaze.gitee.io/wximg/shop/choice.png";
      this.data.choicearr.push(this.data.arr[index].id)
    } else {
      this.data.arr[index].choicesty = "choice";
      this.data.arr[index].choiceimg = "http://annaze.gitee.io/wximg/shop/nochoice.png";
      this.data.choicearr = this.data.choicearr.filter((x)=> {
        return x !== this.data.arr[index].id;
      });
    }
    this.setData({
      arr: this.data.arr,
      choicearr: this.data.choicearr,
    })
    // 判断是否全不选
    if (this.data.choicearr.length == 0) {
      this.setData({
        choall: false,
      })
    }
    // 判断是否已全选
    if (this.data.choicearr.length == this.data.arr.length) {
      this.setData({
        choall: true,
      })
    }
    // console.log(this.data.choicearr)
  },
  colAll(){
    if (this.data.choall) {
      this.data.arr.forEach(function (item, index) {
        item.choicesty = "choice";
        item.choiceimg = "http://annaze.gitee.io/wximg/shop/nochoice.png";
      })
      this.data.choicearr = [];
      this.data.choall = false;
    } else {
      this.data.arr.forEach(function (item, index) {
        item.choicesty = "";
        item.choiceimg = "http://annaze.gitee.io/wximg/shop/choice.png";
        this.data.choicearr.push(item.id);
      }, this)
      this.data.choall = true;
    }

    this.setData({
      arr: this.data.arr,
      choicearr: this.data.choicearr,
      choall: this.data.choall,
    })
    // console.log(this.data.choicearr)
  },
  //提交更改
  colSubmit(){
    this.data.choicearr.forEach(function (item, index) {
      // console.log(this.data.arr[item])
      var items = this.data.arr.filter((ite)=>{
        // console.log(ite.id==item)
        if( ite.id == item ){
          myRequest({
            url: api.collectAddordelete,
            method: 'post',
            data: {
              typeId: ite.type_id,
              valueId: ite.value_id,
            },
            success: res => {
              // success
              this.data.arr = this.data.arr.filter((x) => {
                return x !== ite;
              });
              this.setData({
                arr: this.data.arr
              });
              if (this.data.arr.length == 0) {
                this.setData({
                  colnone: 1
                })
              }
              wx.showToast({
                title: '取消成功',
                duration:2000
              })
            }
          })
        }
      })
      
    }, this)
  },
  collectionClose(){
    this.setData({
      pagetype:0,
    })
  },
  collSett(){
    this.setData({
      sett: !this.data.sett,
    })
  },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse) {
      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    };
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 收藏列表获取
    myRequest({
      url: api.collectList,
      method: 'get',
      data: {
        typeId: 0
      },
      success: res => {
        // success
        let a = res.data.data.data;
        a.forEach(function (item, index) {
          item.choicesty = "choice";
          item.choiceimg = "http://annaze.gitee.io/wximg/shop/nochoice.png";
        })
        this.setData({
          arr: a
        })
        if(this.data.arr.length == 0){
          this.setData({
            colnone: 1
          })
        }
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    this.setData({
      pagetype:0,
      sett:false,
      colnone: 0
    })
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})